/*!
 * myznala-form-yui.js
 * 
 *  tetsuya_odaka (EzoGP)
 * 
 * (C) 2009, EzoGP.
 * $Id: syracava-1.0-min.js 455 2009-04-08 08:54:14Z tetsuya_odaka $
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
 * 
 */
var MyValidateBatchRemote = function(_config) {
	/*
	 * コンストラクタ
	 */
	var	Dom 	= YAHOO.util.Dom;	
	var	Event 	= YAHOO.util.Event;
	var	Connect = YAHOO.util.Connect;
	
	this.ValidateURL = _config.validateURL;
	
	/****************************************************
	* Input(type=text,password)にフォーカスが当たったときのハンドラー
	* 
	*****************************************************/
	var onFocusHdlr = function(_evt,_obj) {

		// 初期値（入力ガイド）の場合だけ、入力値を消す。
		//  Dom.getStyleColor（）は
		//    rgb(128,128,128); mozilla, chrome, 
		//    #808080; IE7 
		//  と異なった戻り値となる。
		// _objは,HTMLInputElement;
		
		var _e = YAHOO.util.Event.getTarget(_evt);
		var _id = _e.id;
		var _resId = _id + '_res';

		/*
		* 文字の色がグレー（初期状態：ガイド表示）なら、中身を消す。
		*/
		var _fColor = Dom.getStyle(_id, 'color');
		if( _fColor == 'rgb(128, 128, 128)' ||
						_fColor == '#808080'){ // for IE
			Dom.get(_id).value="";
		}
		
		/*
		* エラーから再度の入力時にクリックされた場合。
		*/
		// 入力フィールドの色を白にする。
		Dom.setStyle(_id, 'background-color', 'white');
		// 入力フィールドの文字の色をグレーから黒に変える
		Dom.setStyle(_id, 'color', 'black');
		// メッセージフィールドを消す
		Dom.get(_resId).innerHTML="";
	};

	/****************************************************
	* Input(type=text,password)からフォーカスが外れたときのハンドラー
	*	入力値をサーバーに送って、非同期で検証する。
	*****************************************************/
	var onBlurHdlr = function(_evt,_obj){
		var _e = YAHOO.util.Event.getTarget(_evt)
		var _id = _e.id;
		var _resId = _id + '_res';

		var _validateURL = _obj.validateURL;
		
//		alert(_validateURL);
			
		// ajax用パラメータ
		var _arg ={'id'	: _id,
				'resId'	: _resId};

		// 検証対象を取得.
		var _str  = Dom.get(_id).value;
			
		// 検証キーをclass属性から取得.
		var _keys = getClassName(Dom.get(_id)); //内部関数を呼ぶ

		// 検証キーを取り出して、validateする。
		var _keyArray = _keys.split(" ");
		for(var i = 0; i < _keyArray.length; i++){
			// class名の判別(strictとの違い)
			var _idx = _keyArray[i].indexOf('egp-my-is',0);
			if(_idx != -1){
				// egp-my-をトリム
				var _opt = _keyArray[i].replace(/^(egp-my-)/,''); 
				// リクエストパラメータの設定
				var _parm = 'opt='+_opt+'&'+'val='+_str;
				// 戻ってきたときのために、エレメントのidをセットする。
				ajaxCallback.argument = _arg;
					
				// ajaxで検証
				Connect.asyncRequest('POST',_validateURL,
							ajaxCallback, _parm);

			}else{
				_idx = _keyArray[i].indexOf('egp-my-inputonly-is',0);
				if(_idx != -1){
					if(_str != null && _str.length > 0){
						// egp-my-inputonly-をトリム
						var _opt = _keyArray[i].replace(/^(egp-my-inputonly-)/,''); 
						// リクエストパラメータの設定
						var _parm = 'opt='+_opt+'&'+'val='+_str;
						// 戻ってきたときのために、エレメントのidをセットする。
						ajaxCallback.argument = _arg;
					
						// ajaxで検証
						Connect.asyncRequest('POST',_validateURL,
							ajaxCallback, _parm);
					}
				}
			}
		}
	};

	/******************************************************
	 * Ajaxハンドラー
	 *****************************************************/
	var ajaxHandlers =　{
		
		// 受信成功時の処理
		responseSuccess: function(_oj){
			var _id = _oj.argument.id;
			var _resId = _oj.argument.resId;
			// エラーの取得
			var _ret = _oj.responseText;
			if(_ret.length>0){
				// 入力フィールドの色をピンクにする。
				Dom.setStyle(_id, 'background-color', 'pink');
				// エラーが複数のときは複数行にして表示する。
				if(Dom.get(_resId).innerHTML.length>0){
					Dom.get(_resId).innerHTML += ' &nbsp ' +_ret;
				}else{
					Dom.get(_resId).innerHTML = _ret;
				}
			}
		},

		// 受信失敗時の処理
		responseFailure: function(_oj){
			var _id = _oj.argument.id;
			var _resId = 'egp-my-xhrerror';

			var _ret = 'ステータス: ' + oj.status + 'ステータステキスト: ' +
							oj.statusText + '読み込みに失敗しました。';

			// 入力フィールドの色をピンクにする。
			Dom.setStyle(_id, 'background-color', 'pink');
			Dom.get(_resId).innerHTML = _ret;
		}
	};

	/******************************************************
	 * onblur時のコールバック成功/失敗時の振り分け
	 *****************************************************/
	var ajaxCallback =
	{
		success: ajaxHandlers.responseSuccess,
		failure: ajaxHandlers.responseFailure,
		cache: false,
		scope: ajaxHandlers,
		argument: null
	};

	/******************************************************
	*  inputフィールドの検証タイプを調べる
	*  
	*    パラメータ		HTMLInputElement
	*    戻り値		検証タイプが指定されてなければ、null.
	******************************************************/
	var checkValidateType = function(_obj){
		if(_obj != null){
			var _keys = getClassName(_obj);
			if(_keys != null){
				var _idx = _keys.indexOf('egp-my-is',0);
				if(_idx != -1) return 'strict';
				
				var _idx = _keys.indexOf('egp-my-inputonly-is',0);
				if(_idx != -1) return 'loose';

				var _idx = _keys.indexOf('egp-my-only-initguide',0);
				if(_idx != -1) return 'guide';
			}
		}
		return null;
	};

	/*****************************************************
	* 共通関数
	*****************************************************/
	/**
	*  クラス名の取得
	*/
	var getClassName = function(_obj){
		if(document.all){
			//for IE
			var _keys = _obj.getAttribute('className');
		}else{
			// for FF, Chrome, Safari
			var _keys = _obj.getAttribute('class');
		}
		return _keys;
	};
	
	/*****************************************************
	* 初期処理
	******************************************************/
    this.init = function() {
    	
		/*
		* input type=text, passwordに対するバリデーション（onFocus, onBlur）
		* ハンドラーの設定
		*/
		var _inObj = document.getElementsByTagName('input');
		for(var i = 0; i < _inObj.length; i++){
				// validation対象となるinput(type=text,password)に、focusとblurにイベントを仕掛ける。
				if(_inObj[i].getAttribute('type') == 'text' || 
								_inObj[i].getAttribute('type') == 'password'){
					// validationタイプの判断
					var _vType = checkValidateType(_inObj[i]);
					if(_vType){
						Event.addFocusListener(_inObj[i].id, onFocusHdlr, _inObj[i]);
						// guideの場合は、onBlurにはハンドラ設定しない。
						if(_vType == 'strict' || _vType == 'loose'){
							Event.addBlurListener(_inObj[i].id, onBlurHdlr, 
									{'validateURL' : this.ValidateURL}
							);
						}
					}
				}
		}
		return;
	}; 
	return this;
}

/***************************************************************
 * Formをサブミットする
 *  （クロージャーパターンで実装）
 *  
 *  サブミット後、サーバーからの戻り値(TEXT)をDOMに表示するなら、
 *  id='egp-my-xhrresulttxt'というdiv(or span)を用意してください。
 * 
 *     Tetsuya Odaka  ( EzoGP )
 * 
 ***************************************************************/

var MySubmit = function() {

	var	Dom 	= YAHOO.util.Dom;	
	var	Event 	= YAHOO.util.Event;
	var	Connect = YAHOO.util.Connect;
	
	this.exitProc 	= null;
	this.upload 	= false;

	/*****************************************************
	* input type="text", "password"の未入力確認
	*****************************************************/
	var checkInputText = function(){

		var _errStr = null;
		var _inObj = document.getElementsByTagName('input');
		for(var i = 0; i < _inObj.length; i++){

			if(_inObj[i].getAttribute('type') == 'text' || 
					_inObj[i].getAttribute('type') == 'password'){

				var _validateType = checkValidateType(_inObj[i]);
				// 検証対象のみを抽出
				if(_validateType == 'strict'){
					var _id = _inObj[i].id;
					var _resId 	= _id + '_res';
					var _fColor=Dom.getStyle(_id, 'color');
					// 入力行為をおこなった形跡がなければチェックする。
					if( _fColor == 'rgb(128, 128, 128)' ||
							_fColor == '#808080'){ // for IE
						_errStr = '入力必須です.'							
						Dom.setStyle(_id, 'background-color', 'pink');
						Dom.get(_resId).innerHTML = _errStr;
					}
				}
			}
		}
		return _errStr;
	};

	/****************************************************
	* input type="text", "password"のエラー未修正のチェック
	*   validationエラーを修正しなければ、submitできない。
	*****************************************************/
	var checkUnrevicedError = function(){
		var _errStr = null;
		var _divObj = document.getElementsByTagName('span');

		for(var i = 0; i < _divObj.length; i++){
			// 検証するnameをclass属性から取得.
			var _keys = getClassName(_divObj[i]); //内部関数を呼ぶ
			
			// 関係ないdivはとばす。
			if(_keys){
				// class名の判別（my_isRequiredのみを選別する）
				var _idx = _keys.toLowerCase().indexOf('egp-my-error',0);
				if(_idx > -1){
					var _id = _divObj[i].id;
					if(Dom.get(_id).innerHTML == null || Dom.get(_id).innerHTML == ''){
					}else{
						_errStr = '修正をしてください.'	;			
//						Dom.get(_id).innerHTML += _errStr;
					}
				}
			}
		}
		return _errStr;
	};
	
	/****************************************************
	* input type="checkbox", "radio"の未入力確認
	*****************************************************/
	var checkInputCheckbox = function(){
		var _errStr = null;
		var _divObj = document.getElementsByTagName('div');

		for(var i = 0; i < _divObj.length; i++){
			// 検証するnameをclass属性から取得.
			var _keys = getClassName(_divObj[i]); //内部関数を呼ぶ
			
			// 関係ないdivはとばす。
			if(_keys){
				// class名の判別（my_isRequiredのみを選別する）
				var _idx = _keys.toLowerCase().indexOf('egp-my-isrequired',0);
				if(_idx > -1){
					var _id 	= _divObj[i].id;
					var _resId 	= _id + '_res';
					// 未入力エラーのチェック
					var _ret = isCheckRequired(_divObj[i]);
					if(!_ret){
						_errStr = '入力必須です.'	;			
						Dom.get(_resId).innerHTML = _errStr;
					}else{
						Dom.get(_resId).innerHTML = "";
					}
				}
			}
		}
		return _errStr;
	};

	/*****************************************************
	*  チェックボックスとラジオボタンの未入力チェック処理
	*  	戻り値	チェックがされていれば、true.
	*   
	*****************************************************/
	var isCheckRequired = function(_obj){
		// HTMLInputElementの配列を取得する。
		var _inObj = _obj.getElementsByTagName('input');
		for(var i = 0; i < _inObj.length; i++){
			if(_inObj[i].checked) return true;
		}
		return false;
	};	

	/******************************************************
	*  inputフィールドの検証タイプを調べる
	*  
	*    パラメータ		HTMLInputElement
	*    戻り値		検証タイプが指定されてなければ、null.
	******************************************************/
	var checkValidateType = function(_obj){
		if(_obj != null){
			var _keys = getClassName(_obj);
			if(_keys != null){
				var _idx = _keys.indexOf('egp-my-is',0);
				if(_idx != -1) return 'strict';
				
				var _idx = _keys.indexOf('egp-my-inputonly-is',0);
				if(_idx != -1) return 'loose';

				var _idx = _keys.indexOf('egp-my-only-initguide',0);
				if(_idx != -1) return 'guide';
			}
		}
		return null;
	};

	/*****************************************************
	* 共通関数
	*****************************************************/
	/**
	*  クラス名の取得
	*/
	var getClassName = function(_obj){
		if(document.all){
			//for IE
			var _keys = _obj.getAttribute('className');
		}else{
			// for FF, Chrome, Safari
			var _keys = _obj.getAttribute('class');
		}
		return _keys;
	};
	
	/*****************************************************
	 * サブミットする
	 * 	パラメータ（オブジェクト）
	 * 		submitType	:	Async, or Sync
	 * 		submitURL	:	サブミット先のURL（Asyncの時必須）
	 * 		submitForm	:	サブミットするForm
	 * 
	 *****************************************************/
	this.submit = function(evt,_config){

		var _submitForm = _config.submitForm;
		var _submitType = _config.submitType;
		var _submitURL 	= _config.submitURL;
		this.exitProc 	= _config.exitProc;
		this.upload 	= _config.upload;
		
		// エラーチェック
		var _errStr = checkInputText();
		if(!_errStr){
			_errStr = checkUnrevicedError();
		}
		if(!_errStr){
			_errStr = checkInputCheckbox();
		}

		// エラーが無かったらフォームをサブミットする。
		if(!_errStr) {
			if(_submitType.toLowerCase() == 'async'){
				
				// 非同期のサブミットオブジェクトのインスタンス化。
				var _oj = new MyAsyncSubmit();
				var _parm = {
					'submitForm':	_submitForm,
					'submitURL'	:	_submitURL,
					'exitProc'	:	this.exitProc,
					'upload'	:	this.upload
				}
				_oj.submit(_parm);

				return true;
			
			}else if(_submitType.toLowerCase() == 'sync'){
				// 同期サブミット
				// 動作を安定させるため、一旦、リスナーがあった場合、取り除く。
				YAHOO.util.Event.removeListener(_submitForm);
				
				// 同期サブミット用インスタンスの生成とサブミット
				var _oj = new MySyncSubmit();
				var _parm = {
					submitForm	:	_submitForm
				}
				_oj.submit(_parm);
		
				return true;
				
			}else{
				alert('submit type not declared!!');
			}

		} else {
			YAHOO.util.Event.stopEvent(evt);
			// サブミットを停止するイベントを設定する。
//			YAHOO.util.Event.on(_submitForm, 'submit', function(e){
//				YAHOO.util.Event.stopEvent(e); 
//				return false;
//				}
//			);

//			YAHOO.util.Event.on(_submitForm, 'submit', function(e){
//				return true;
//				}
//			);
			
		}
		return true;
	}
	return this;
}


/***************************************************************
 * FormをXHR（非同期）でサブミットする
 *  （クロージャーパターンで実装）
 *  
 *  サブミット後、サーバーからの戻り値(TEXT)をDOMに表示するために、
 *  id='egp-my-xhrresulttxt'というdiv(or span)を用意してください。
 * 
 *     Tetsuya Odaka  ( EzoGP )
 * 
 ***************************************************************/
var MyAsyncSubmit = function() {
 	var	Dom 	= YAHOO.util.Dom;	
 	var	Event 	= YAHOO.util.Event;
 	var	Connect = YAHOO.util.Connect;

 	this.exitProc 	= null;
 	this.upload 	= false;
 	
	/*****************************************************
	 * サブミットする
	 *****************************************************/
 	this.submit = function(_config) {
 		var submitForm	= _config.submitForm;
 		var submitURL	= _config.submitURL;
 		this.exitProc	= _config.exitProc;
 		this.upload		= _config.upload;
 		
 		if(this.upload){
 			// フォームの内容を保存
			Connect.setForm(submitForm,true);
 		}else{
 			// フォームの内容を保存
			Connect.setForm(submitForm);
 		}
		// POSTする
		ajaxCallback.argument = this;
		Connect.asyncRequest('POST', submitURL,
						ajaxCallback, null);
	}

	/*****************************************************
	 * Ajaxハンドラ
	 *****************************************************/
 	var ajaxHandlers =　{
		// 受信成功時の処理
		responseSuccess:function(_obj){
			// id = egp-my-xhrresulttxtが用意してあれば、レスポンスをそこ書く。
			var _resId = 'egp-my-xhrresulttxt';
			var _errorId = 'egp-my-xhrerrortxt';
				
			_resText = _obj.responseText;
 					
			if(_resText.indexOf('success',0) > -1){
				// 正常終了の処理
				var _tmpArr = _resText.split(';');
						
				for(i=1; i<_tmpArr.length; i++){
					if(Dom.get(_resId).innerHTML){
						Dom.get(_resId).innerHTML+='<br>'+_tmpArr[i];
					}else{
						Dom.get(_resId).innerHTML=_tmpArr[i];
					}
				}
						
				if(_obj.argument.exitProc != null){
					eval(_obj.argument.exitProc);
				}
						
			}else{
				// サーバーからエラーが返却されてきた場合
				var _tmpArr = _resText.split(';');
				for(i=1; i<_tmpArr.length; i++){
					var _tArr = _tmpArr[i].split(':');
					var _tmpId = _tArr[0]; //エラーの発生した個別入力項目のid
					var _tmpMsg = _tArr[1]; //エラーメッセージ
					/* 
					 * フィールドのエラーの処理
					 */
					if(Dom.get(_tmpId+'_res')){
						// 個別のエラーフィールドを持つ場合（１）
 						Dom.get(_tmpId+'_res').innerHTML=_tmpMsg;
						Dom.setStyle(_tmpId, 'background-color', 'pink');
					}else if(Dom.get(_errorId)){
						// １つのエラーフィールド（id=egp-my-xhrerrortxt）を持つ場合（２）
						if(Dom.get(_errorId).innerHTML){
 							Dom.get(_errorId).innerHTML+='<br>'+_tmpArr[i];
						}else{
 							Dom.get(_errorId).innerHTML=_tmpArr[i];
						}
					}else{
						// エラーフィールドではなく、メッセージフィールド(id=egp-my-xhrresulttxt)しかもたない場合。
						if(Dom.get(_resId).innerHTML){
 							Dom.get(_resId).innerHTML+='<br>'+_tmpArr[i];
						}else{
 							Dom.get(_resId).innerHTML=_tmpArr[i];
						}
					}
				}
			}
		},

		// 受信失敗時の処理
		responseFailure:function(_obj){
			var _resId = 'egp-my-xhrerror';
			var _ret = 'ステータス: ' + _obj.status + 'ステータステキスト: ' +
							_obj.statusText + '読み込みに失敗しました。';
			Dom.get(_resId).innerHTML = _ret;
		},
 			
		upload:function(_obj){
			var _resId = 'egp-my-xhrresulttxt';
			var _errorId = 'egp-my-xhrerrortxt';
		
			_resText = _obj.responseText;
 					
			if(_resText.indexOf('success',0) > -1){
				// 正常終了の処理
				var _tmpArr = _resText.split(';');
					
				for(i=1; i<_tmpArr.length; i++){
					if(Dom.get(_resId).innerHTML){
						Dom.get(_resId).innerHTML+='<br>'+_tmpArr[i];
					}else{
						Dom.get(_resId).innerHTML=_tmpArr[i];
					}
				}
						
				if(_obj.argument.exitProc != null){
					eval(_obj.argument.exitProc);
				}
						
			}else{
				// サーバーからエラーが返却されてきた場合
				var _tmpArr = _resText.split(';');
				for(i=1; i<_tmpArr.length; i++){
					var _tArr = _tmpArr[i].split(':');
					var _tmpId = _tArr[0]; //エラーの発生した個別入力項目のid
					var _tmpMsg = _tArr[1]; //エラーメッセージ
					/* 
					 * フィールドのエラーの処理
					 */
					if(Dom.get(_tmpId+'_res')){
						// 個別のエラーフィールドを持つ場合（１）
 						Dom.get(_tmpId+'_res').innerHTML=_tmpMsg;
						Dom.setStyle(_tmpId, 'background-color', 'pink');
					}else if(Dom.get(_errorId)){
						// １つのエラーフィールド（id=egp-my-xhrerrortxt）を持つ場合（２）
						if(Dom.get(_errorId).innerHTML){
 							Dom.get(_errorId).innerHTML+='<br>'+_tmpArr[i];
						}else{
 							Dom.get(_errorId).innerHTML=_tmpArr[i];
						}
					}else{
						// エラーフィールドではなく、メッセージフィールド(id=egp-my-xhrresulttxt)しかもたない場合。
						if(Dom.get(_resId).innerHTML){
 							Dom.get(_resId).innerHTML+='<br>'+_tmpArr[i];
						}else{
 							Dom.get(_resId).innerHTML=_tmpArr[i];
						}
					}
				}
			}
		}
 	};

	/*****************************************************
	 * Ajax Callback
	 *****************************************************/
 	var ajaxCallback =
 	{
 		success:ajaxHandlers.responseSuccess,
 		failure:ajaxHandlers.responseFailure,
 		upload:ajaxHandlers.upload,
 		cache: false,
 		scope: ajaxHandlers,
 		argument: null
 	};
 	
 	return this;
 };

 /***************************************************************
  * Formを同期でサブミットするオブジェクト
  *  （クロージャーパターンで実装）
  *  
  *     Tetsuya Odaka  ( EzoGP )
  *
  ***************************************************************/
 var MySyncSubmit = function() {
	var	Dom 	= YAHOO.util.Dom;	
	var	Event 	= YAHOO.util.Event;	

	this.submit = function(_config) {
 		var _submitForm	= _config.submitForm;

 		if(Dom.get(_submitForm) != null){
			Dom.get(_submitForm).submit();
		}
	 }

	return this;
 };
 
 /***************************************************************
 * Panelサブウィンドウ生成オブジェクト
 *
 *		2009/6/2 
 *     	Tetsuya Odaka  ( EzoGP )
 * 
 ***************************************************************/
var MyAsycPanelSubWindow = function(_config) {
	/*
	 * コンストラクタ
	 */
	var Event	= YAHOO.util.Event;
	var Dom		= YAHOO.util.Dom;
	var Connect	= YAHOO.util.Connect;
	var Anim	= YAHOO.util.Anim;

	this.rDiv 	= _config.renderDiv;
	this.dArr 	= _config.dataArray;
	this.fURL	= _config.formURL;
	this.vURL	= _config.validateURL;
	this.eDiv	= 'egp-my-xhrerror';
	this.modal	= _config.modal;
	
	/*
	* サブウィンドウのMarkupを取得する
	*/
	this.openHdlr = function(){
		//Event.preventDefault();

		// メッセージのクリア
		Dom.get(this.eDiv).innerHTML = '';
		Dom.get(this.rDiv).innerHTML = '';

		// !! _argは不要
		var _arg ={
				'errId'	:	this.eDiv,
				'rDiv'	: 	this.rDiv,
				'vURL'	: 	this.vURL,
				'dArr'	:	this.dArr
		};
		
		// （※）　thisを設定する。
		openCallback.argument = this;
		// ajaxでサブウィンドウのフォームを取得する。
		YAHOO.util.Connect.asyncRequest('GET',this.fURL,
				openCallback, _arg);
	};

	/*
	*  サブウィンドウの設定
	*/
	 this.createScreen = function(){alert('please set subwindow setting');};

	/*
	* サブウィンドウを生成して、（画面サブミット、クローズの）イベントハンドラーを設定する。
	*/
	var openCallback = {
    	success : function(_obj) {
			// _obj.argumentは（※）で送ったthis.
    		_orgObj = _obj.argument;
			var _dArr = _orgObj.dArr;
			var _rDiv = _orgObj.rDiv;
			var _vURL = _orgObj.vURL;
			var _eDiv = _orgObj.eDiv;
			var _modal = _orgObj.modal;

			// XHRの戻り値の取得（入力フォーム）
			var _ret = _obj.responseText;

			// 入力フォームの表示
			if(	_ret.length > 0){
				Event.onAvailable(_rDiv,
					function(){
						
					    // モーダルパネルを生成する。
				        if (!subWin) {
		        			var subWin = new YAHOO.widget.Panel('egp-my-modal-subwindow-show',  
								{ 
		                       	fixedcenter: true, 
		                       	close: true, 
		                       	draggable: true, 
								// 一番上に出す。
		                       	zindex:10,
								// Modal指定。
		                       	modal: _modal,
								// showされるまでは見えない。
		                   		visible: false
		            			}
				        	);

						// subWindowを定義する
			        	subWin.setHeader("subwindow");
		    	    	subWin.setBody(_ret);
		        		subWin.render(document.body);
						}

					    var _validateObj = new MyValidateBatchRemote(
									{'validateURL' : _vURL}
							);
						_validateObj.init();
						
						// 画面にデータを配置する。
					    _orgObj.createScreen(_orgObj);
					    
			       		Dom.setStyle(_rDiv,"visibility","visible");
		    	    	subWin.show();
					}
		 	    );
			}else{
				Dom.get(_eDiv).innerHTML = 'フォームの取得に失敗しました.';
			}
		},
		
     	failure : function(_obj) {
 			var _eDiv = this.eDiv;
 			var _ret = 'ステータス: ' + _obj.status + 'ステータステキスト: ' +
 						_obj.statusText + ' フォームの取得に失敗しました。';
 			Dom.get(_eDiv).innerHTML = _ret;	     
 		}
 		
	 };

	return this;
};

/* powered by Eclipse Ganymede, designed by EzoGP Project. */